package com.houweishi.module.salary.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.houweishi.common.annotation.Excel;
import com.houweishi.common.core.domain.BaseEntity;

/**
 * 薪资对象 biz_salary
 * 
 * @author houweishi
 * @date 2023-03-04
 */
@Data
public class BizSalary extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 员工id */
//    @Excel(name = "员工id")
    private Long staffId;

    /** 员工名称 */
    @Excel(name = "员工名称")
    private String staffName;

    /** 部门id */
//    @Excel(name = "部门id")
    private Long deptId;

    /** 部门名称*/
    @Excel(name = "部门名称")
    private String deptName;

    /** 岗位id */
//    @Excel(name = "岗位id")
    private Long postId;

    /** 岗位名称 */
    @Excel(name = "岗位名称")
    private String postName;

    /** 薪资计算截止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截止日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date salaryTime;

    /** 入职日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date entryTime;

    /** 出勤天数 */
    @Excel(name = "出勤天数")
    private Long attendanceDays;

    /** 基本工资 */
    @Excel(name = "基本工资")
    private BigDecimal baseSalary;

    /** 岗位津贴 */
    @Excel(name = "岗位津贴")
    private BigDecimal postSubsidy;

    /** 工龄工资 */
    @Excel(name = "工龄工资")
    private BigDecimal senioritySalary;

    /** 技能考核工资 */
    @Excel(name = "技能考核工资")
    private BigDecimal skillsAssessSalary;

    /** 管理考核工资 */
    @Excel(name = "管理考核工资")
    private BigDecimal manageAssessSalary;

    /** 安全奖 */
    @Excel(name = "安全奖")
    private BigDecimal safetyAward;

    /** 绩效工资 */
    @Excel(name = "绩效工资")
    private BigDecimal meritSalary;

    /** 全勤工资 */
    @Excel(name = "全勤奖")
    private BigDecimal fullTimeSalary;

    /** 出勤工资 */
    @Excel(name = "出勤工资")
    private BigDecimal attendanceSalary;

    /** 专项考核 */
    @Excel(name = "专项考核")
    private BigDecimal specialAssess;

    /** 应发工资 */
    @Excel(name = "应发工资")
    private BigDecimal wagesPayable;

    /** 社保 */
    @Excel(name = "社保")
    private BigDecimal socialSecurity;

    /** 个人所得税 */
    @Excel(name = "个人所得税")
    private BigDecimal personalIncomeTax;

    /** 罚款 */
    @Excel(name = "罚款")
    private BigDecimal forfeit;

    /** 其他 */
    @Excel(name = "其他")
    private BigDecimal other;

    /** 实发工资 */
    @Excel(name = "实发工资")
    private BigDecimal netSalary;

    /** 工资信息 */
    @Excel(name = "工资信息")
    private String salaryInformation;

    /** 自选字段 */
    //    @Excel(name = "自选字段")
    private String fieldsNames ;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;



    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setStaffId(Long staffId) 
    {
        this.staffId = staffId;
    }

    public Long getStaffId() 
    {
        return staffId;
    }
    public void setStaffName(String staffName) 
    {
        this.staffName = staffName;
    }

    public String getStaffName() 
    {
        return staffName;
    }
    public void setPostId(Long postId) 
    {
        this.postId = postId;
    }

    public Long getPostId() 
    {
        return postId;
    }
    public void setPostName(String postName) 
    {
        this.postName = postName;
    }

    public String getPostName() 
    {
        return postName;
    }
    public void setSalaryTime(Date salaryTime)
    {
        this.salaryTime = salaryTime;
    }

    public Date getSalaryTime()
    {
        return salaryTime;
    }
    public void setEntryTime(Date entryTime) 
    {
        this.entryTime = entryTime;
    }

    public Date getEntryTime() 
    {
        return entryTime;
    }
    public void setAttendanceDays(Long attendanceDays) 
    {
        this.attendanceDays = attendanceDays;
    }

    public Long getAttendanceDays() 
    {
        return attendanceDays;
    }
    public void setBaseSalary(BigDecimal baseSalary) 
    {
        this.baseSalary = baseSalary;
    }

    public BigDecimal getBaseSalary() 
    {
        return baseSalary;
    }
    public void setPostSubsidy(BigDecimal postSubsidy) 
    {
        this.postSubsidy = postSubsidy;
    }

    public BigDecimal getPostSubsidy() 
    {
        return postSubsidy;
    }
    public void setSenioritySalary(BigDecimal senioritySalary) 
    {
        this.senioritySalary = senioritySalary;
    }

    public BigDecimal getSenioritySalary() 
    {
        return senioritySalary;
    }
    public void setSkillsAssessSalary(BigDecimal skillsAssessSalary) 
    {
        this.skillsAssessSalary = skillsAssessSalary;
    }

    public BigDecimal getSkillsAssessSalary() 
    {
        return skillsAssessSalary;
    }
    public void setManageAssessSalary(BigDecimal manageAssessSalary) 
    {
        this.manageAssessSalary = manageAssessSalary;
    }

    public BigDecimal getManageAssessSalary() 
    {
        return manageAssessSalary;
    }
    public void setSafetyAward(BigDecimal safetyAward) 
    {
        this.safetyAward = safetyAward;
    }

    public BigDecimal getSafetyAward() 
    {
        return safetyAward;
    }
    public void setMeritSalary(BigDecimal meritSalary) 
    {
        this.meritSalary = meritSalary;
    }

    public BigDecimal getMeritSalary() 
    {
        return meritSalary;
    }
    public void setFullTimeSalary(BigDecimal fullTimeSalary) 
    {
        this.fullTimeSalary = fullTimeSalary;
    }

    public BigDecimal getFullTimeSalary() 
    {
        return fullTimeSalary;
    }
    public void setAttendanceSalary(BigDecimal attendanceSalary) 
    {
        this.attendanceSalary = attendanceSalary;
    }

    public BigDecimal getAttendanceSalary() 
    {
        return attendanceSalary;
    }
    public void setSpecialAssess(BigDecimal specialAssess) 
    {
        this.specialAssess = specialAssess;
    }

    public BigDecimal getSpecialAssess() 
    {
        return specialAssess;
    }
    public void setWagesPayable(BigDecimal wagesPayable) 
    {
        this.wagesPayable = wagesPayable;
    }

    public BigDecimal getWagesPayable() 
    {
        return wagesPayable;
    }
    public void setSocialSecurity(BigDecimal socialSecurity) 
    {
        this.socialSecurity = socialSecurity;
    }

    public BigDecimal getSocialSecurity() 
    {
        return socialSecurity;
    }
    public void setPersonalIncomeTax(BigDecimal personalIncomeTax) 
    {
        this.personalIncomeTax = personalIncomeTax;
    }

    public BigDecimal getPersonalIncomeTax() 
    {
        return personalIncomeTax;
    }
    public void setForfeit(BigDecimal forfeit) 
    {
        this.forfeit = forfeit;
    }

    public BigDecimal getForfeit() 
    {
        return forfeit;
    }
    public void setOther(BigDecimal other) 
    {
        this.other = other;
    }

    public BigDecimal getOther() 
    {
        return other;
    }
    public void setNetSalary(BigDecimal netSalary) 
    {
        this.netSalary = netSalary;
    }

    public BigDecimal getNetSalary() 
    {
        return netSalary;
    }
    public void setSalaryInformation(String salaryInformation)
    {
        this.salaryInformation = salaryInformation;
    }

    public String getSalaryInformation()
    {
        return salaryInformation;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("staffId", getStaffId())
            .append("staffName", getStaffName())
            .append("postId", getPostId())
            .append("postName", getPostName())
            .append("salaryTime", getSalaryTime())
            .append("entryTime", getEntryTime())
            .append("attendanceDays", getAttendanceDays())
            .append("baseSalary", getBaseSalary())
            .append("postSubsidy", getPostSubsidy())
            .append("senioritySalary", getSenioritySalary())
            .append("skillsAssessSalary", getSkillsAssessSalary())
            .append("manageAssessSalary", getManageAssessSalary())
            .append("safetyAward", getSafetyAward())
            .append("meritSalary", getMeritSalary())
            .append("fullTimeSalary", getFullTimeSalary())
            .append("attendanceSalary", getAttendanceSalary())
            .append("specialAssess", getSpecialAssess())
            .append("wagesPayable", getWagesPayable())
            .append("socialSecurity", getSocialSecurity())
            .append("personalIncomeTax", getPersonalIncomeTax())
            .append("forfeit", getForfeit())
            .append("other", getOther())
            .append("netSalary", getNetSalary())
            .append("salaryInformation", getSalaryInformation())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
